// pages/noAuth/index.js
const config = require("../../config/config.js")
const { LOGIN } = require("../../config/login.js")
const utils = require("../../utils/util")
const { Dialog, Notify, Toast } = require("../../config/modal")
const app = getApp()

Page({
    /** 页面的初始数据  */
    data: {
        nextPage: "",
        isHttp: false,
        showAuthModal: false,
        loginCode: '',
    },
    URL: {
        getMyInfo: "/customer/getMyInfo",
    },
    /**
     * 生命周期函数--监听页面加载
     * "enablePullDownRefresh":true,
     */
    onLoad: function (options) {
        wx.hideShareMenu();

        // http拦截或者是页面跳转拦截。当跳转的页面是授权页面的时候。将http设为true
        let isHttp = (options.nextPage == "http" || options.nextPage == undefined);
        // 获取参数
        const eventChannel = this.getOpenerEventChannel()
        this.setData({
            isHttp: isHttp,
            nextPage: options.nextPage
        })

        let _this = this;

        if (utils.isInvalid(eventChannel)) {
            return;
        }

        eventChannel.on('acceptDataFromOpenerPage', function (data) {
            let nextPath = isHttp ? _this.getFromPagePath() : options.nextPage
            if (!utils.isInvalid(data)) {
                nextPath = isHttp ? _this.getFromPagePath() : utils.paramsToPathParams(data, options.nextPage)
            }
            utils.saveUrlParams(_this, data, [])
            _this.setData({
                isHttp: isHttp,
                nextPage: nextPath
            })
        })

        console.log(this.data.nextPage)
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        let _this = this;
        wx.login({
            success: (login) => {
                _this.setData({
                    loginCode: login.code
                })
            }
        })
    },

    getPhoneNumber(e) {
        if (utils.isInvalid(e.detail.encryptedData)) {
            return;
        }
        let _this = this;
        // 换openid
        let code = this.data.loginCode;
        app.$postIsTip(true, true, config.paraOpenIdUrl, { encryptedData: e.detail.encryptedData, iv: e.detail.iv, code: code }, res => {
            if (res.R) {
                _this.setData({
                    showAuthModal: true
                })
            }
            //  真机上不生效
            // app.$alertConfirm({
            //     msg: '校园CBD需要获取您的个人信息、昵称、头像...',
            //     sureMsg: "授权获取",
            //     cancelMsg: '拒绝',
            //     confirmButtonColor: '#67C23A',
            //     openType: 'getUserInfo',
            //     success: () => {
            //         console.log("点击同意授权")
            //         _this.getUserInfo();
            //     },
            //     cancel: () => {

            //     }
            // })
        })
    },

    cancelAuth() {
        this.setData({
            showAuthModal: false
        })
    },
    getUserInfo(e) {
        LOGIN.toLogin((userInfo) => {
            this.setData({
                showAuthModal: false
            })
            Toast('授权成功，正在跳转...');
            app.$emit("authedCallback", { userInfo: userInfo, fromParams: this.data.fromParams });
            setTimeout(() => {
                // 进入下一页
                if (this.data.isHttp) {
                    // wx.navigateBack({})
                    app.$navigateTo(this.getFromPagePath() + utils.getFromUrlParams(this), false);
                    return;
                }
                let urlParams = utils.getFromUrlParams(this);
                app.$redirectTo(this.data.nextPage + (utils.isInvalid(urlParams) ? '?' : urlParams + "&") + "authPage=true", true);
            }, 100)
        });
    },
    goBackIndex() {
        app.$switchTab('/pages/tabbar/index/index', false);
    },


    goBack() {
        app.$redirectTo(this.getFromPagePath() + utils.getFromUrlParams(this), false);
    },
    /** 获取来这一页的页路径 */
    getFromPagePath() {
        var pages = getCurrentPages();
        let prePage = pages[pages.length - 2];  //上一个页面
        return "/" + prePage.route;
    },
    getLocation() {
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})
